var app = getApp();
import { CategoryModel } from '../../models/CategoryModel.js'
let category = new CategoryModel()

Component({
  //一些组件选项
  options: {
    multipleSlots: true // 在组件定义时的选项中启用多slot支持
  },

  //组件的对外属性，属性设置中可包含三个字段,type 表示属性类型、 value 表示属性初始值、 observer 表示属性值被更改时的响应函数    
  properties: {

    // 搜索关键词
    searchValue:  {
      type: String,
      value: '',
    },
    // 价格标识 0:1
    SortPrice:  {
      type: Number,
      value: '',
    },
    // 排序
    orderBy:  {
      type: String,
      value: ''
    },
    // 商品
    goods:{
      type: Array,
      value: ''
    },
  },

  // },
  //组件的内部数据，和 properties 一同用于组件的模版渲染
  data:{

  },
  //组件的方法，包括事件响应函数和任意的自定义方法 
  methods: {
    // 绑定输入值
    bindinput: function (e) {
      this.setData({
        searchValue: e.detail.value
      })
      if(e.detail.value ==''){
        this.search();
      }
    },
    //输入完
    bindconfirm(e){
      this.setData({
        searchValue: e.detail.value
      })
      this.search();
    },

    //搜索
    search:function(e){
      wx.showLoading({
        title: '加载中',
      })  
      var that = this
      const _data = {
        page: 1,
        pageSize: 500,
      }

      if (that.data.searchValue) {
        _data.k = that.data.searchValue
        category.SearchProduct(_data, data => {
          wx.hideLoading();
          console.log(data)
          let tmp =  data.result.data.list[0];
          console.log(tmp)
          let result = tmp&&tmp.data||[];
          that.setData({
            goods:result
          })
          that.triggerEvent('signEvent', {
            'res': result
          })
        })
      }else{
        wx.hideLoading()
        that.triggerEvent('signEvent', {
          'res': []
        })
        that.qingkong()
      }
    },
    //排序
    filter(e){
      console.log(e)
      if(this.data.searchValue == ''){
        return;
      }
      let goods = this.data.goods
      let newSortType = e.currentTarget.dataset.type
      if(newSortType === 'marketprice'){
        if(this.data.SortPrice == ''){
          this.setData({
            SortPrice:1
          });
          goods.sort((a,b)=>{
            return a.price - b.price
          });
        }else{
          this.setData({
            SortPrice: 0
          });
          goods.sort((a,b)=>{
            return b.price - a.price
          });
        }
      }else if(newSortType === 'salesreal'){
        goods.sort((a,b)=>{
          return b.sold - a.sold
        });
        this.setData({
          SortPrice:3,
        })
      }else{
        this.search()
        this.setData({
          SortPrice:3,
        })
      }
      this.setData({
        orderBy:newSortType
      })
      this.triggerEvent('signEvent', {
        'res': goods
      })
    },
    //清除input
    clearInput: function () {
      this.setData({
        searchValue: ""
      });
      this.search();
      this.qingkong();
    },
    //清除样式
    qingkong:function(e){
      this.setData({
        orderBy:'',
        SortPrice:3
      })
    },
  },
  // 组件生命周期函数，可以为函数，或一个在methods段中定义的方法名
  attached: function(){},
  moved: function(){},
  detached: function(){},
  pageLifetimes: {
    show: function() {
      // 页面被展示
      this.search();
    },
  }
})
